Release notes

2025r5

Order number for cast members in content API

On content, cast members can be defined in the CAST list, where they have a number to determine the order.

Previously, this order number was not part of the cast array in the content API. The items in the array were also not sorted according to this number when using a GET call, but based on OID. In a POST or PUT call, the order of the list was implicitly matched to the order number when created.

From this version, the number attribute has been added to the cast array of the following calls:

  • GET program/episode/season/series/versions/contentCollections

  • POST/PUT program/episode/season/series/versions/contentCollections

It corresponds to the order number of each cast member.

An example of the GET /programs call:

{...
"cast": [
    {
        "personId": "1336589517",
        "castFunction": "Actor",
        "castType": "actors",
        "role": null,
        "number": 1
    },
    {
        "personId": "9501482769",
        "castFunction": "Producer",
        "castType": null,
        "role": null,
        "number": 2
    }
],
"originalLanguage": "TestPSILanguage2",
"contentTargetGroup": "TestCategorySecondary2",
"content": "TestPSIContents1",
...}

In the GET calls, the members in the cast array are now sorted on this number.

In the POST and PUT calls, if the number is

  • not provided in the call, the cast list is sorted based on the order in the cast array, meaning the first cast item will get order number 1, the second 2…

  • provided, the cast members are ordered based on the defined number. The numbers do not have to be in order in the call, meaning a member with number 2 can come before a member with 1 in the array, and they will still be ordered correctly.

    • However, no numbers can be skipped in the array, meaning 1, 2, 4 will not be accepted. If a number is skipped, the following error is returned:

{
    "statusCode": "422",
    "message": "Operation cannot be completed due to violations",
    "timestamp": "2025-06-10T14:00:39Z",
    "concept": "Program",
    "id": "143048527",
    "errors": [
        {
            "errorCode": "5672",
            "description": "The sequence number 'No.' should be between 1 and 2.",
            "data": [
                "No.",
                "2"
            ]
        }
    ]
}
  • If a number is included twice in the array, the following error is returned:

{
    "statusCode": "422",
    "message": "Operation cannot be completed due to violations",
    "timestamp": "2025-06-10T13:58:43Z",
    "concept": "Program",
    "id": "143048527",
    "errors": [
        {
            "errorCode": "615",
            "description": "The combination of following fields has to be unique: No., Product.",
            "data": [
                "No., Product"
            ]
        }
    ]
}

API developers

The YAML has been updated for these changes. The latest version can be retrieved by using the GET /api call.

The following has changed:
At line 3565, the number property was added to the CastMember schema.

For easier viewing, the YAMLs can also be compared here: TextCompare

2025r3

Target group in content API

On a product, it is possible to define the target group related to the buying order. It was previously not available in the content API.

From this version, the targetGroup attribute has been added to the following calls:

  • GET /products/{contentId}

  • Program calls:

    • POST /programs
    • PUT /programs/{contentId}

    • GET /programs/{contentId}

    • POST/programs/{contentId}/versions/{versionId}

  • Series calls:

    • POST /series

    • PUT /series/{contentId}

    • GET /series/{contentId}

  • Season calls:

    • POST /seasons

    • PUT /seasons/{contentId}

    • GET /seasons/{contentId}

    • POST/seasons/{contentId}/versions/{versionId}

  • Episode calls:

    • POST /episodes

    • PUT /episodes/{contentId}

    • GET /episodes/{contentId}

    • POST/episodes/{contentId}/versions/{versionId}

  • Content collections:

    • POST /contentCollections

    • PUT /contentCollections/{contentId}

    • GET /contentCollections/{contentId}

An example of the GET /products call:

{
    "contentId": "1405730527",
    "contentType": "program",
    "title": "The Souvenir",
    "duration": "02:00:00",
    "productCode": "Kine6",
    "productionCompanies": [],
    "type": null,
    "status": null,
    "remarks": null,
    "pressSheets": [],
    "cast": [],
    "originalLanguage": null,
    "contentTargetGroup": null,
    ...
    "targetGroup": "A18-40",
    "masterVersionId": null,
    ...
}

A GET /targetGroups call was already available to get the values of the TargetGroup drop-down list.

API developers

The YAML has been updated for these changes. The latest version can be retrieved by using the GET /api call.

The following has changed:

At line 2917, the targetGroup property was added to the properties of the Content schema.
At line 3116, the targetGroup property was added to the properties of the ContentForGet schema.

For easier viewing, the YAMLs can also be compared here: TextCompare